type ChangeCallback = () => void; export declare class FileWatcher { private callbacks; private handles; private lastEvents; private readonly dedupeMs; /** * Start watching `projectRoot` recursively. * Falls back to per-directory watching on platforms that don't support recursive mode. */ start(projectRoot: string): void; /** * Update the watched directory set based on esbuild metafile inputs. * Adds watchers for any new parent directories not yet watched. */ updateFromMetafile(watchedFiles: string[]): void; onChange(cb: ChangeCallback): void; close(): void; private onEvent; } export {};